package edu.jmu.flowmeter.service;

import com.github.pagehelper.PageInfo;
import edu.jmu.flowmeter.dto.AbstractBaseDomain;

import java.util.List;

/**
 * @author Wen
 */
public interface BaseCrudService<T extends AbstractBaseDomain> {
    /**
     * 查询属性值是否唯一
     *
     * @param property
     * @param value
     * @return true:唯一；false:不唯一
     */
    default boolean unique(String property, String value) {
        return false;
    }

    /**
     * 保存实体
     * @param domain
     * @return
     */
    default T save(T domain) {
        return null;
    }

    /**
     * 获取分页
     * @param domain
     * @param pageNum
     * @param pageSize
     * @return
     */
    default PageInfo<T> page(T domain, int pageNum, int pageSize) {
        return null;
    }


    /**
     * 获取全部数据
     * @param domain
     * @return
     */
    default List<T> all(T domain){return null;}
}
